package com.xmtlxx.wms.domain.bo;

import com.xmtlxx.common.core.domain.BaseEntity;
import com.xmtlxx.common.core.validate.AddGroup;
import com.xmtlxx.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 仓库业务对象 t_store
 *
 * @author xmtlxx
 * @date 2022-08-15
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("仓库业务对象")
public class StoreBo extends BaseEntity {

    /**
     * 仓库ID
     */
    @ApiModelProperty(value = "仓库ID")
    private String id;

    /**
     * 仓库名称
     */
    @ApiModelProperty(value = "仓库名称", required = true)
    @NotBlank(message = "仓库名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 所属机构
     */
    @ApiModelProperty(value = "所属机构", required = true)
    @NotNull(message = "所属机构不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long deptId;

    /**
     * 仓管员ID
     */
    @ApiModelProperty(value = "仓管员ID", required = true)
    @NotNull(message = "仓管员ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userId;

    /**
     * 省份
     */
    @ApiModelProperty(value = "省份")
    private String province;

    /**
     * 市
     */
    @ApiModelProperty(value = "市")
    private String city;

    /**
     * 县/区
     */
    @ApiModelProperty(value = "县/区")
    private String area;

    /**
     * 省代码
     */
    @ApiModelProperty(value = "省代码", required = true)
    @NotBlank(message = "省代码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String provinceCode;

    /**
     * 市代码
     */
    @ApiModelProperty(value = "市代码", required = true)
    @NotBlank(message = "市代码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cityCode;

    /**
     * 区县代码
     */
    @ApiModelProperty(value = "区县代码", required = true)
    @NotBlank(message = "区县代码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String areaCode;

    /**
     * 仓库位置
     */
    @ApiModelProperty(value = "仓库位置", required = true)
    @NotBlank(message = "仓库位置不能为空", groups = { AddGroup.class, EditGroup.class })
    private String address;

    /**
     * 上级ID
     */
    @ApiModelProperty(value = "上级ID")
    private String parentId;

    /**
     * 祖级列表
     */
    @ApiModelProperty(value = "祖级列表")
    private String ancestors;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    private String status;

    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    private String lng;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    private String lat;

    /**
     * 删除标识
     */
    @ApiModelProperty(value = "删除标识")
    private String delFlag;


    /**
     * 类型
     */
    @ApiModelProperty("类型")
    private Integer type;

    private List<String> storeIds;

    @ApiModelProperty("仓库编号")
    private String storeNo;

    @ApiModelProperty("仓库代码")
    private String storeCode;

    @ApiModelProperty("仓库电话")
    private String tel;
}
